실행 컨텍스트

❓질문

실행 컨텍스트에 대해서 설명해주세요


💡 조사하기전 내가 알고 있던 내용

실행 컨텍스트는 렉시컬 스코프 별로 가지고있는 환경의 모음 ( 변수 , 함수 )등의 정보와 외부 렉시컬 스코프 환경에 대한 정보를 가지고 있는 것입니다.


🏫 정리한 내용

실행 컨텍스트란 자바스크립트에서 코드가 실행 되는 환경을 의미합니다.
js엔진이 코드를 실행할 때 , 그 코드가 실행될때의 환경을 정의하고 관리하기 위한 존재 입니다.

실행 컨텍스트는 크게 2가지로 나눌 수 있습니다.
전역실행컨텍스트는 자바스크립트가 처음 실행 될때 생성되는 컨텍스트입니다.
프로그램이 종료 될때까지 유지되며 , 전역에 선언된 변수와 함수 모두 포함됩니다.
전역 컨텍스트에서 선언된 변수와 함수는 프로그램 내 어디서든 접근이 가능합니다.
자바스크립트는 싱글 스레드이기 때문에 전역 실행 컨텍스트는 1개만 존재합니다.

함수 실행 컨텍스트는 함수가 호출 될때마다 생성 되는 컨텍스트를 의미 합니다.
각 함수는 자신만의 실행 컨텍스트를 가지며 이 컨텍스트 내에서 선언된 변수와 함수는 해당 함수 내에서만 유효합니다.
함수가 종료되면 실행 컨텍스트도 같이 사라집니다.

실행 컨텍스트는 어떤 구성요소로 이루워져있나요?

실행 컨텍스트는 크게 변수객체 , 스코프 체인 , this로 이루어져있습니다

변수객체란 실행 컨텍스트내에서 사용되는 변수와 함수선언을 저장하는 공간입니다.
전역컨텍스트에서는 전역객체가 변수객체의 역할을 하고 함수 컨텍스트에서는 활성 객체가 변수와 매개변수를 관리합니다

스코프 체인은 현재 실행 중인 컨텍스트와 외부 렉시컬 환경의 연결을 유지합니다.
현재 컨텍스트에서 변수를 참조하다가 찾지 못한다면 외부 환경으로 범위를 넓혀가며 변수를 찾는 이유입니다.

this는 실행컨텍스트에 따라 참조 되는 객체가 달라집니다.
전역 -> 전역객체 함수 -> 함수 호출방법 마다 다름

실행 컨텍스트는 이러한 구성 요소를 바탕으로 js 코드가 실행되는 동안의 환경을 관리하고 코드 실행시 변수의 유효 범위나 함수 호출의 맥락을 결정 짓습니다.